<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui" template="/WEB-INF/include/template/squelette.xhtml">

	<ui:define name="content">

		<h:form id="form-tableau-utilisateur">

			<p:tooltip />

			<h:panelGrid columns="2">
				<h:outputLabel value="Type de recherche" for="input-type-recherche" />
				<p:selectOneMenu id="input-type-recherche" value="#{beanGererUtilisateur.typeRecherche}">
					<p:ajax event="change" listener="#{beanGererUtilisateur.rechercherUtilisateurs()}" update="form-tableau-utilisateur:tableau-utilisateur" />
					<f:selectItem itemLabel="Non supprimés" itemValue="#{true}" />
					<f:selectItem itemLabel="Supprimés" itemValue="#{false}" />
				</p:selectOneMenu>
			</h:panelGrid>

			<p:separator />

			<p:dataTable id="tableau-utilisateur" value="#{beanGererUtilisateur.listeUtilisateur}" var="utilisateur" lazy="true" paginator="true" rows="100" styleClass="width100"
				emptyMessage="Aucun utilisateur trouvé.">

				<p:column>
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.actions']}" />
					</f:facet>
					<p:commandLink id="btn-overlay">
						<h:graphicImage value="/resources/images/icones/page_edit.png" />
					</p:commandLink>
					<p:overlayPanel for="btn-overlay">
						<h:panelGroup rendered="#{empty utilisateur.dateSuppression}">
							<h:panelGrid columns="3" styleClass="panelgrid-overlay">
								<p:commandButton icon="change" value="Switch" action="#{beanLogin.doSwitchUser(utilisateur.username)}" ajax="false" />
								<p:commandButton value="Modifier" icon="page_edit" action="#{beanGererUtilisateur.affichageDialogUtilisateur(utilisateur)}" />
								<p:commandButton value="Supprimer" icon="close" action="#{beanGererUtilisateur.supprimerUtilisateur(utilisateur)}" />
							</h:panelGrid>
						</h:panelGroup>
						<h:panelGroup rendered="#{!empty utilisateur.dateSuppression}">
							<h:panelGrid columns="1" styleClass="panelgrid-overlay">
								<p:commandButton value="Réactiver" icon="change" action="#{beanGererUtilisateur.ractiverCompte(utilisateur)}" title="Réactiver le compte" />
							</h:panelGrid>
						</h:panelGroup>

					</p:overlayPanel>
				</p:column>

				<p:column sortBy="#{utilisateur.username}">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.login']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.username}" />
				</p:column>

				<p:column>
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.profil']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.profil.libelle}" />
				</p:column>

				<p:column sortBy="#{utilisateur.dateCreation}" styleClass="center">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.cree_le']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.dateCreation}" converter="dateConverter" />
				</p:column>

				<p:column sortBy="#{utilisateur.dateSuppression}" styleClass="center" rendered="#{!beanGererUtilisateur.typeRecherche}">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.supprime_le']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.dateSuppression}" converter="dateConverter" />
				</p:column>

				<p:column sortBy="#{utilisateur.information.nom}">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.nom']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.information.nom}" />
				</p:column>

				<p:column sortBy="#{utilisateur.information.prenom}">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.prenom']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.information.prenom}" />
				</p:column>

				<p:column sortBy="#{utilisateur.information.dateNaissance}" styleClass="center">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.date_naissance']}" />
					</f:facet>
					<h:outputText value="#{utilisateur.information.dateNaissance}" converter="dateConverter" />
				</p:column>

				<p:column sortBy="#{utilisateur.accountNonExpired}" styleClass="center">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.account_expired']}" />
					</f:facet>
					<h:graphicImage value="#{!utilisateur.accountNonExpired ? '/resources/images/icones/green_dot.png' : '/resources/images/icones/red_dot.png'}" />
				</p:column>

				<p:column sortBy="#{utilisateur.credentialsNonExpired}" styleClass="center">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.password_expired']}" />
					</f:facet>
					<h:graphicImage value="#{!utilisateur.credentialsNonExpired ? '/resources/images/icones/green_dot.png' : '/resources/images/icones/red_dot.png'}" />
				</p:column>

				<p:column sortBy="#{utilisateur.accountNonLocked}" styleClass="center">
					<f:facet name="header">
						<h:outputText value="#{msg['ihm.libelle.account_blocked']}" />
					</f:facet>
					<h:graphicImage value="#{!utilisateur.accountNonLocked ? '/resources/images/icones/green_dot.png' : '/resources/images/icones/red_dot.png'}" />
				</p:column>

			</p:dataTable>

		</h:form>

	</ui:define>

	<ui:define name="dialog">
		<p:dialog widgetVar="dialogUtilisateur" dynamic="true" closeOnEscape="true" modal="true" resizable="false" draggable="false" width="450" appendToBody="true">

			<f:facet name="header">
				<h:outputText value="#{msg['ihm.libelle.dialog.header.modifier_utilisateur']}" />
			</f:facet>

			<h:form id="frm-dialog-utilisateur">
				<p:panel>
					<h:panelGrid columns="4" styleClass="width100">
						<h:outputText value="#{msg['ihm.libelle.login']} : " styleClass="bold" />
						<h:outputText value="#{beanGererUtilisateur.utilisateur.username}" />
						<h:outputText value="#{msg['ihm.libelle.cree_le']} : " styleClass="bold" />
						<h:outputText value="#{beanGererUtilisateur.utilisateur.dateCreation}">
							<f:convertDateTime pattern="dd/MM/yyyy HH:mm" />
						</h:outputText>
					</h:panelGrid>
				</p:panel>
				<h:panelGrid columns="2">
					<h:outputText value="#{msg['ihm.libelle.account_expired']}" />
					<p:selectBooleanButton value="#{beanGererUtilisateur.utilisateur.accountNonExpired}" onLabel="Non" offLabel="Oui" onIcon="red_dot" offIcon="green_dot" />
					<h:outputText value="#{msg['ihm.libelle.password_expired']}" />
					<p:selectBooleanButton value="#{beanGererUtilisateur.utilisateur.credentialsNonExpired}" onLabel="Non" offLabel="Oui" onIcon="red_dot" offIcon="green_dot" />
					<h:outputText value="#{msg['ihm.libelle.account_blocked']}" />
					<p:selectBooleanButton value="#{beanGererUtilisateur.utilisateur.accountNonLocked}" onLabel="Non" offLabel="Oui" onIcon="red_dot" offIcon="green_dot" />
					<h:outputText value="#{msg['ihm.libelle.profil']}" />
					<p:selectOneMenu value="#{beanGererUtilisateur.utilisateur.profil}" converter="#{genericConverter}">
						<f:selectItems value="#{beanGererUtilisateur.listeProfil}" var="profil" itemLabel="#{profil.libelle}" itemValue="#{profil}" />
					</p:selectOneMenu>
				</h:panelGrid>

				<p:separator />

				<div align="right">
					<p:commandButton value="#{msg['ihm.bouton.valider']}" icon="valid" action="#{beanGererUtilisateur.modifierUtilisateur()}" />
				</div>
			</h:form>
		</p:dialog>
	</ui:define>

</ui:composition>